package com.onedec.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OnedecApplyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OnedecApplyExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andApplyIdIsNull() {
            addCriterion("apply_id is null");
            return (Criteria) this;
        }

        public Criteria andApplyIdIsNotNull() {
            addCriterion("apply_id is not null");
            return (Criteria) this;
        }

        public Criteria andApplyIdEqualTo(Integer value) {
            addCriterion("apply_id =", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdNotEqualTo(Integer value) {
            addCriterion("apply_id <>", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdGreaterThan(Integer value) {
            addCriterion("apply_id >", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("apply_id >=", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdLessThan(Integer value) {
            addCriterion("apply_id <", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdLessThanOrEqualTo(Integer value) {
            addCriterion("apply_id <=", value, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdIn(List<Integer> values) {
            addCriterion("apply_id in", values, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdNotIn(List<Integer> values) {
            addCriterion("apply_id not in", values, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdBetween(Integer value1, Integer value2) {
            addCriterion("apply_id between", value1, value2, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyIdNotBetween(Integer value1, Integer value2) {
            addCriterion("apply_id not between", value1, value2, "applyId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdIsNull() {
            addCriterion("apply_emp_id is null");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdIsNotNull() {
            addCriterion("apply_emp_id is not null");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdEqualTo(Integer value) {
            addCriterion("apply_emp_id =", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdNotEqualTo(Integer value) {
            addCriterion("apply_emp_id <>", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdGreaterThan(Integer value) {
            addCriterion("apply_emp_id >", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("apply_emp_id >=", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdLessThan(Integer value) {
            addCriterion("apply_emp_id <", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdLessThanOrEqualTo(Integer value) {
            addCriterion("apply_emp_id <=", value, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdIn(List<Integer> values) {
            addCriterion("apply_emp_id in", values, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdNotIn(List<Integer> values) {
            addCriterion("apply_emp_id not in", values, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdBetween(Integer value1, Integer value2) {
            addCriterion("apply_emp_id between", value1, value2, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyEmpIdNotBetween(Integer value1, Integer value2) {
            addCriterion("apply_emp_id not between", value1, value2, "applyEmpId");
            return (Criteria) this;
        }

        public Criteria andApplyTypeIsNull() {
            addCriterion("apply_type is null");
            return (Criteria) this;
        }

        public Criteria andApplyTypeIsNotNull() {
            addCriterion("apply_type is not null");
            return (Criteria) this;
        }

        public Criteria andApplyTypeEqualTo(Integer value) {
            addCriterion("apply_type =", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeNotEqualTo(Integer value) {
            addCriterion("apply_type <>", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeGreaterThan(Integer value) {
            addCriterion("apply_type >", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("apply_type >=", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeLessThan(Integer value) {
            addCriterion("apply_type <", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeLessThanOrEqualTo(Integer value) {
            addCriterion("apply_type <=", value, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeIn(List<Integer> values) {
            addCriterion("apply_type in", values, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeNotIn(List<Integer> values) {
            addCriterion("apply_type not in", values, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeBetween(Integer value1, Integer value2) {
            addCriterion("apply_type between", value1, value2, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("apply_type not between", value1, value2, "applyType");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkIsNull() {
            addCriterion("apply_remark is null");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkIsNotNull() {
            addCriterion("apply_remark is not null");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkEqualTo(String value) {
            addCriterion("apply_remark =", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkNotEqualTo(String value) {
            addCriterion("apply_remark <>", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkGreaterThan(String value) {
            addCriterion("apply_remark >", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("apply_remark >=", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkLessThan(String value) {
            addCriterion("apply_remark <", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkLessThanOrEqualTo(String value) {
            addCriterion("apply_remark <=", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkLike(String value) {
            addCriterion("apply_remark like", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkNotLike(String value) {
            addCriterion("apply_remark not like", value, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkIn(List<String> values) {
            addCriterion("apply_remark in", values, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkNotIn(List<String> values) {
            addCriterion("apply_remark not in", values, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkBetween(String value1, String value2) {
            addCriterion("apply_remark between", value1, value2, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyRemarkNotBetween(String value1, String value2) {
            addCriterion("apply_remark not between", value1, value2, "applyRemark");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeIsNull() {
            addCriterion("apply_datetime is null");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeIsNotNull() {
            addCriterion("apply_datetime is not null");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeEqualTo(Date value) {
            addCriterion("apply_datetime =", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeNotEqualTo(Date value) {
            addCriterion("apply_datetime <>", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeGreaterThan(Date value) {
            addCriterion("apply_datetime >", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("apply_datetime >=", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeLessThan(Date value) {
            addCriterion("apply_datetime <", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeLessThanOrEqualTo(Date value) {
            addCriterion("apply_datetime <=", value, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeIn(List<Date> values) {
            addCriterion("apply_datetime in", values, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeNotIn(List<Date> values) {
            addCriterion("apply_datetime not in", values, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeBetween(Date value1, Date value2) {
            addCriterion("apply_datetime between", value1, value2, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyDatetimeNotBetween(Date value1, Date value2) {
            addCriterion("apply_datetime not between", value1, value2, "applyDatetime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeIsNull() {
            addCriterion("apply_start_time is null");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeIsNotNull() {
            addCriterion("apply_start_time is not null");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeEqualTo(Date value) {
            addCriterion("apply_start_time =", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeNotEqualTo(Date value) {
            addCriterion("apply_start_time <>", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeGreaterThan(Date value) {
            addCriterion("apply_start_time >", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("apply_start_time >=", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeLessThan(Date value) {
            addCriterion("apply_start_time <", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("apply_start_time <=", value, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeIn(List<Date> values) {
            addCriterion("apply_start_time in", values, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeNotIn(List<Date> values) {
            addCriterion("apply_start_time not in", values, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeBetween(Date value1, Date value2) {
            addCriterion("apply_start_time between", value1, value2, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("apply_start_time not between", value1, value2, "applyStartTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeIsNull() {
            addCriterion("apply_end_time is null");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeIsNotNull() {
            addCriterion("apply_end_time is not null");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeEqualTo(Date value) {
            addCriterion("apply_end_time =", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeNotEqualTo(Date value) {
            addCriterion("apply_end_time <>", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeGreaterThan(Date value) {
            addCriterion("apply_end_time >", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("apply_end_time >=", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeLessThan(Date value) {
            addCriterion("apply_end_time <", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("apply_end_time <=", value, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeIn(List<Date> values) {
            addCriterion("apply_end_time in", values, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeNotIn(List<Date> values) {
            addCriterion("apply_end_time not in", values, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeBetween(Date value1, Date value2) {
            addCriterion("apply_end_time between", value1, value2, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("apply_end_time not between", value1, value2, "applyEndTime");
            return (Criteria) this;
        }

        public Criteria andApplyStatusIsNull() {
            addCriterion("apply_status is null");
            return (Criteria) this;
        }

        public Criteria andApplyStatusIsNotNull() {
            addCriterion("apply_status is not null");
            return (Criteria) this;
        }

        public Criteria andApplyStatusEqualTo(String value) {
            addCriterion("apply_status =", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusNotEqualTo(String value) {
            addCriterion("apply_status <>", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusGreaterThan(String value) {
            addCriterion("apply_status >", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusGreaterThanOrEqualTo(String value) {
            addCriterion("apply_status >=", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusLessThan(String value) {
            addCriterion("apply_status <", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusLessThanOrEqualTo(String value) {
            addCriterion("apply_status <=", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusLike(String value) {
            addCriterion("apply_status like", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusNotLike(String value) {
            addCriterion("apply_status not like", value, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusIn(List<String> values) {
            addCriterion("apply_status in", values, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusNotIn(List<String> values) {
            addCriterion("apply_status not in", values, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusBetween(String value1, String value2) {
            addCriterion("apply_status between", value1, value2, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyStatusNotBetween(String value1, String value2) {
            addCriterion("apply_status not between", value1, value2, "applyStatus");
            return (Criteria) this;
        }

        public Criteria andApplyBak1IsNull() {
            addCriterion("apply_bak1 is null");
            return (Criteria) this;
        }

        public Criteria andApplyBak1IsNotNull() {
            addCriterion("apply_bak1 is not null");
            return (Criteria) this;
        }

        public Criteria andApplyBak1EqualTo(String value) {
            addCriterion("apply_bak1 =", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1NotEqualTo(String value) {
            addCriterion("apply_bak1 <>", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1GreaterThan(String value) {
            addCriterion("apply_bak1 >", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1GreaterThanOrEqualTo(String value) {
            addCriterion("apply_bak1 >=", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1LessThan(String value) {
            addCriterion("apply_bak1 <", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1LessThanOrEqualTo(String value) {
            addCriterion("apply_bak1 <=", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1Like(String value) {
            addCriterion("apply_bak1 like", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1NotLike(String value) {
            addCriterion("apply_bak1 not like", value, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1In(List<String> values) {
            addCriterion("apply_bak1 in", values, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1NotIn(List<String> values) {
            addCriterion("apply_bak1 not in", values, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1Between(String value1, String value2) {
            addCriterion("apply_bak1 between", value1, value2, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak1NotBetween(String value1, String value2) {
            addCriterion("apply_bak1 not between", value1, value2, "applyBak1");
            return (Criteria) this;
        }

        public Criteria andApplyBak2IsNull() {
            addCriterion("apply_bak2 is null");
            return (Criteria) this;
        }

        public Criteria andApplyBak2IsNotNull() {
            addCriterion("apply_bak2 is not null");
            return (Criteria) this;
        }

        public Criteria andApplyBak2EqualTo(String value) {
            addCriterion("apply_bak2 =", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2NotEqualTo(String value) {
            addCriterion("apply_bak2 <>", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2GreaterThan(String value) {
            addCriterion("apply_bak2 >", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2GreaterThanOrEqualTo(String value) {
            addCriterion("apply_bak2 >=", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2LessThan(String value) {
            addCriterion("apply_bak2 <", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2LessThanOrEqualTo(String value) {
            addCriterion("apply_bak2 <=", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2Like(String value) {
            addCriterion("apply_bak2 like", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2NotLike(String value) {
            addCriterion("apply_bak2 not like", value, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2In(List<String> values) {
            addCriterion("apply_bak2 in", values, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2NotIn(List<String> values) {
            addCriterion("apply_bak2 not in", values, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2Between(String value1, String value2) {
            addCriterion("apply_bak2 between", value1, value2, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak2NotBetween(String value1, String value2) {
            addCriterion("apply_bak2 not between", value1, value2, "applyBak2");
            return (Criteria) this;
        }

        public Criteria andApplyBak3IsNull() {
            addCriterion("apply_bak3 is null");
            return (Criteria) this;
        }

        public Criteria andApplyBak3IsNotNull() {
            addCriterion("apply_bak3 is not null");
            return (Criteria) this;
        }

        public Criteria andApplyBak3EqualTo(String value) {
            addCriterion("apply_bak3 =", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3NotEqualTo(String value) {
            addCriterion("apply_bak3 <>", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3GreaterThan(String value) {
            addCriterion("apply_bak3 >", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3GreaterThanOrEqualTo(String value) {
            addCriterion("apply_bak3 >=", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3LessThan(String value) {
            addCriterion("apply_bak3 <", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3LessThanOrEqualTo(String value) {
            addCriterion("apply_bak3 <=", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3Like(String value) {
            addCriterion("apply_bak3 like", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3NotLike(String value) {
            addCriterion("apply_bak3 not like", value, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3In(List<String> values) {
            addCriterion("apply_bak3 in", values, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3NotIn(List<String> values) {
            addCriterion("apply_bak3 not in", values, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3Between(String value1, String value2) {
            addCriterion("apply_bak3 between", value1, value2, "applyBak3");
            return (Criteria) this;
        }

        public Criteria andApplyBak3NotBetween(String value1, String value2) {
            addCriterion("apply_bak3 not between", value1, value2, "applyBak3");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}